package com.education.platform.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.education.platform.dto.feedback.FeedbackCreateDTO;
import com.education.platform.dto.feedback.FeedbackReplyDTO;
import com.education.platform.entity.Feedback;

import java.util.List;

/**
 * 反馈服务接口
 *
 * @author education-platform
 * @since 2024-09-27
 */
public interface FeedbackService {

    /**
     * 创建反馈
     */
    Long createFeedback(FeedbackCreateDTO feedbackCreateDTO);

    /**
     * 更新反馈
     */
    void updateFeedback(Long id, FeedbackCreateDTO feedbackCreateDTO);

    /**
     * 删除反馈
     */
    void deleteFeedback(Long id);

    /**
     * 根据ID获取反馈
     */
    Feedback getFeedbackById(Long id);

    /**
     * 分页查询反馈列表
     */
    IPage<Feedback> getFeedbackPage(Page<Feedback> page, String type, String status, String priority);

    /**
     * 获取我的反馈列表
     */
    List<Feedback> getMyFeedbacks(Long userId);

    /**
     * 回复反馈
     */
    void replyFeedback(Long id, FeedbackReplyDTO feedbackReplyDTO);

    /**
     * 更新反馈状态
     */
    void updateStatus(Long id, String status);

    /**
     * 获取待处理的反馈
     */
    List<Feedback> getPendingFeedbacks();

    /**
     * 获取高优先级反馈
     */
    List<Feedback> getHighPriorityFeedbacks();

    /**
     * 关闭反馈
     */
    void closeFeedback(Long id);
}

